package cn.iocoder.yudao.module.ao.controller.admin.SysClass.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;

@Schema(description = "管理后台 - 班级信息新增/修改 Request VO")
@Data
public class SysClassSaveReqVO {

    @Schema(description = "班级ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25207")
    private Long classId;

    @Schema(description = "所属专业ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27561")
    @NotNull(message = "所属专业ID不能为空")
    private Long majorId;

    @Schema(description = "入学学期ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28915")
    @NotNull(message = "入学学期ID不能为空")
    private Long enrollmentTermId;

    @Schema(description = "班级名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
    @NotEmpty(message = "班级名称不能为空")
    private String className;

    @Schema(description = "班级编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "班级编码不能为空")
    private String classCode;

    @Schema(description = "年级", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "年级不能为空")
    private String grade;

    @Schema(description = "班主任ID", example = "9452")
    private Long headteacherId;

    @Schema(description = "辅导员ID", example = "24819")
    private Long counselorId;

    @Schema(description = "学生人数", example = "27295")
    private Integer studentCount;

    @Schema(description = "最大容量")
    private Integer maxCapacity;

    @Schema(description = "预计毕业学期ID", example = "27995")
    private Long graduationTermId;

    @Schema(description = "状态（0在线 1离线 2空闲）", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "状态（0在线 1离线 2空闲）不能为空")
    private Integer status;

}